package com.iuie.ns.system.mapper.setting;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.iuie.ns.frame.persistence.annotations.MyBatisRepository;
import com.iuie.ns.system.vo.setting.SysUserSettingVO;

/**
 * 用户设置-mapper
 * @author liujie
 * @date 2018年3月29日下午10:03:37
 */
@MyBatisRepository
public interface SysUserSettingMapper {

	/**
	 * 根据角色ID查询settingKeys
	 * @param roleId
	 * @return
	 * @date 2018年3月31日下午6:08:22
	 */
	List<String> findSettingKeysByRoleId(@Param("roleId") String roleId);

	/**
	 * 根据用户ID删除用户设置
	 * @param userId
	 * @return
	 * @date 2018年3月31日下午6:30:19
	 */
	Integer deleteUserSettingByUserId(@Param("userId") String userId);

	/**
	 * 根据用户ID及用户当前角色查询用户的用户设置
	 * @param userId
	 * @param roleId 
	 * @return
	 * @date 2018年3月31日下午6:36:13
	 */
	List<SysUserSettingVO> findByUserId(@Param("userId") String userId, @Param("roleId") String roleId);

	/**
	 * 删除用户设置的值（多值情况）
	 * @param id
	 * @return
	 * @date 2018年3月31日下午6:52:46
	 */
	Integer deleteSettingValues(@Param("settingId") String settingId);

	/**
	 * 保存用户设置
	 * @param list
	 * @date 2018年4月1日上午10:14:39
	 */
	void saveUserSettings(@Param("records") List<SysUserSettingVO> list);

	/**
	 * 保存用户设置的值
	 * @param settingId
	 * @param settingValues
	 * @date 2018年4月1日上午10:25:54
	 */
	void saveUserSettingValues(@Param("settingId") String settingId, @Param("settingValues") List<String> settingValues);

	/**
	 * 查询当前用户当前角色的settingKey对应的用户设置
	 * @param settingKey
	 * @param roleId
	 * @param userId
	 * @return
	 * @date 2018年4月1日下午1:16:49
	 */
	SysUserSettingVO findOneBySettingKey(@Param("settingKey") String settingKey, @Param("roleId") String roleId, @Param("userId") String userId);
	
}